CS205A HW7
课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
这次回顾作业7。
Problem 1
(a)$E_1$测量$f$和$f_0$的误差,$E_2$测量$f$的光滑性。
(b)该式表示关于$g$的相对变化率。
(c)
(d)由(c)可得
所以可以近似认为
(e)这部分感觉有点问题,这里略过。
Problem 2
假设$a_i$存在数组$a$中,那么利用如下算法即可在$O(k)$时间内计算出$f(x)$:
res = 0
s = 1
for i in a:
res += i * s
s *= x
Problem 3
(a)设
那么
因为
所以
解得
因此
(b)对$g(x)$积分可得
(c)为方便叙述,记
那么$f$在$c$处的泰勒展开为
对上式积分可得
注意
所以(2)可以化为
所以精度为$3$次。
(d)假设
那么复合求积公式为
Problem 4
利用范德蒙行列式计算结果:
对应代码如下:
import numpy as np
import matplotlib.pyplot as plt
def Vandermon(X, k):
#维度
n = X.shape[0]
#计算结果
res = np.ones(n).reshape(-1, 1)
x = np.copy(X)
for i in range(k):
res = np.c_[res, x]
x *= X
return res
x1 = np.linspace(-1, 1, 500).reshape(-1, 1)
K = [3, 5, 7, 9, 11]
for k in K:
X = np.linspace(-1, 1, k).reshape(-1, 1)
y = np.abs(X)
Van = Vandermon(X, k-1)
#计算系数
a = np.linalg.solve(Van, y)
#计算结果
y1 = Vandermon(x1, k-1).dot(a)
plt.plot(x1, y1, label="degree={}".format(k))
plt.legend()
plt.show()
图像结果如下:
不难看出,随着次数增加,曲线变化幅度越来越大。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemonzzz!
评论
ValineLivere